/**
题目:
给定两个以字符串形式表示的非负整数 num1 和 num2，返回 num1 和 num2 的乘积，它们的乘积也表示为字符串形式。
示例 1:
输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:
输入: num1 = "123", num2 = "456"
输出: "56088"
说明：
num1 和 num2 的长度小于110。
num1 和 num2 只包含数字 0-9。
num1 和 num2 均不以零开头，除非是数字 0 本身。
不能使用任何标准库的大数类型（比如 BigInteger）或直接将输入转换为整数来处理。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/multiply-strings
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/
func multiply(num1 string, num2 string) string {
    if num1 == "0" || num2 == "0"{
        return "0"
    }
    res := make([]int,len(num1)+len(num2))
    for i:=len(num1)-1; i>=0 ;i--{
        s1 := num1[i] - '0'
        for j:=len(num2)-1; j>=0;j--{
            s2 := num2[j] - '0'
            tmp := res[i+j+1] + int(s1) * int(s2)
            res[i+j+1] = tmp % 10
            res[i+j] += tmp / 10
        }
    }
    ret := ""
    for i:=0; i < len(res); i++{
        if i == 0 && res[i] == 0{
            continue
        }
        ret += strconv.Itoa(int(res[i]))
    }
    return ret
}